
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Lehrer implements Serializable
{
	//Attribute
	private String vorname;
	private String nachname;
	private String kuerzel;
	private String raum;
	private Termineintrag[] termine = new Termineintrag[36];
	private String passwort; //zufällig erzeugt und einmalig ausgegeben!
	
	//Konstruktor
	public Lehrer(String vorname, String nachname, String kuerzel, String raum)
	{
		this.vorname = vorname;
		this.nachname = nachname;
		this.kuerzel = kuerzel;
		this.raum = raum;
		this.passwort = passwortErzeugen();
        try {
            //Schreiben der Daten in die Namensdatei
            PrintWriter pr = new PrintWriter(new BufferedWriter(new FileWriter("Lehrerdaten.txt", true)));
            pr.println("-----------------------------------------------------");
            pr.println();
            pr.println(this.vorname + " - " + this.nachname + " - " + this.kuerzel + " - " + this.raum + " - " + passwort);
            pr.println();
            pr.println("-----------------------------------------------------");
            pr.println();
            pr.close();
        } catch (IOException ex) {
            Logger.getLogger(Lehrer.class.getName()).log(Level.SEVERE, null, ex);
        }
	}
        
        public void aktualisieren(String vn, String nn, String kl, String raum)
        {
            if(!vorname.equals(vn))
            {
                vorname = vn;
            }
            if(!nachname.equals(nn))
            {
                nachname = nn;
            }
            if(!kuerzel.equals(kl))
            {
                kuerzel = kl;
            }
            if(!this.raum.equals(raum))
            {
                this.raum = raum;
            }
        }

        public void terminSperren(int zeit)
        { //Sperren eines Termines durch erzeugen eines Sperreintrag-Objektes an der entsprechenden Stelle des Termineintrag-Arrays
            if (termine[(zeit-1700)/5] == null) //nochmalige Kontrolle, ob Termin frei
            {
                termine[(zeit-1700)/5] = new Sperreintrag();
            }
        }
        
        public void terminBuchen(Schueler gast, int zeit)
        { //Eintragen des Schülerobjektes in die entsprechende Position des Termineintrag-Arrays
            if (termine[(zeit-1700)/5] == null) //nochmalige Kontrolle, ob der Termin frei ist
            {
                termine[(zeit-1700)/5] = gast;
            }
        }
	
	//Methode, die das Passwort erzeugt
	public static String passwortErzeugen()
	{
		int pin = (int) (Math.random()*10000);
                return String.valueOf(pin);
	}
        
        public boolean nIstGleich(String n)
        {
            if((nachname + vorname).equals(n))
            {
                return true;
            } else {
                return false;
            }
        }
        
        public boolean nIstKleiner(String n)
        {
            if((this.nachname + this.vorname).compareTo(n) > 0)
            {
                return true;
            } else {
                return false;
            }
        }
        
        public void infoAusgeben()
        {
            System.out.println(vorname + " " + nachname + " " + kuerzel + " " + raum + " " + passwort);
        }
        
        public String nnGeben()
        {
            return vorname;
        }
        
        public String vnGeben()
        {
            return nachname;
        }
        
        public String klGeben()
        {
            return kuerzel;
        }
        
        public String raumGeben()
        {
            return raum;
        }
        
        public boolean pwIstGleich(String pw)
        {
            if(passwort.equals(pw))
            {
                return true;
            } else {
                return false;
            }
        }
}